package com.pengbei.enshrine.common.utils;


import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

import androidx.appcompat.app.AppCompatActivity;

import com.gyf.immersionbar.ImmersionBar;
import com.gyf.immersionbar.OnKeyboardListener;
import com.pengbei.enshrine.R;;

public class StatusBarUtils {

    /**
     * 沉浸式状态栏 白底黑字
     * */
    public static void StatusBarWhiteBgBlackText(AppCompatActivity activity){
        ImmersionBar.with(activity)
                .fitsSystemWindows(true)
                .statusBarDarkFont(true)
                .statusBarColor(R.color.color_titlebar)    //状态栏颜色，不写默认透明色
                .init();   //所有子类
    }

    /**
     * 沉浸式状态栏 黑底白字
     * */
    public static void StatusBarBlackBgWhiteText(AppCompatActivity activity){
        ImmersionBar.with(activity)
                .fitsSystemWindows(true)
                .statusBarDarkFont(false)
                .statusBarColor(R.color.color_000000)    //状态栏颜色，不写默认透明色
                .init();   //所有子类
    }

    /**
     * 沉浸式状态栏 透明底黑字
     * */
    public static void StatusBarTransparentBgBlackText(AppCompatActivity activity){
        ImmersionBar.with(activity)
                .fitsSystemWindows(false)  //使用该属性,必须指定状态栏颜色
                .statusBarColor(R.color.color_transparent)    //状态栏颜色，不写默认透明色
                .transparentStatusBar()
                .init();   //所有子类都将继承这些相同的属性
    }

    /**
     * 沉浸式状态栏 透明底白字
     * */
    public static void StatusBarTransparentBgWhiteText(AppCompatActivity activity){
        ImmersionBar.with(activity)
                .fitsSystemWindows(false)  //使用该属性,必须指定状态栏颜色
                .statusBarDarkFont(true)
                .statusBarColor(R.color.color_transparent)    //状态栏颜色，不写默认透明色
                .transparentStatusBar()
                .init();   //所有子类都将继承这些相同的属性
    }

    /**
     * 系统方式
     * */
    public static void SysStatusBar(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = activity.getWindow();
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
    }

    /**
     * 利用反射获取状态栏高度
     *
     * @return
     */
    public static int getStatusBarHeight(Activity activity) {
        int result = 0;
        if (null==activity){
            return result;
        }
        //获取状态栏高度的资源id
        int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = activity.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

}
